package graph;

import java.io.File;
import java.io.IOException;
import java.util.Vector;

import database.Interrogazioni;

public class DatiJGraph {
	private Vector<DatiJGraph> datiGrafo;
	private String nomeSocket;
	private int tempo;
	private int numeroConnessioni;
	private boolean iniziale;
	private boolean finale;

	public DatiJGraph() {}
	
	public DatiJGraph(String nomeS, int temp, int numConn, boolean ini, boolean fin) {
		this.nomeSocket = nomeS;
		this.tempo = temp;
		this.numeroConnessioni = numConn;
		this.iniziale = ini;
		this.finale = fin;
	}
	
	public String getNomeSocket() {
		return nomeSocket;
	}

	public void setNomeSocket(String nomeSocket) {
		this.nomeSocket = nomeSocket;
	}

	public int getTempo() {
		return tempo;
	}

	public void setTempo(int tempo) {
		this.tempo = tempo;
	}

	public Vector<DatiJGraph> getDatiGrafo() {
		return datiGrafo;
	}

	public void setDatiGrafo(Vector<DatiJGraph> datiGrafo) {
		this.datiGrafo = datiGrafo;
	}

	public int getNumeroConnessioni() {
		return numeroConnessioni;
	}

	public void setNumeroConnessioni(int numeroConnessioni) {
		this.numeroConnessioni = numeroConnessioni;
	}
	
	public boolean isIniziale() {
		return iniziale;
	}

	public void setIniziale(boolean iniziale) {
		this.iniziale = iniziale;
	}

	public boolean isFinale() {
		return finale;
	}

	public void setFinale(boolean finale) {
		this.finale = finale;
	}
	
	public void elaboraDati (int maxConnection, String nomeFile, String percorsoBase, double tempoMax) throws IOException {
		Interrogazioni inter = new Interrogazioni();
		datiGrafo = inter.getConnessioni();
		
		System.out.println("+++++++++++++++++++ CREAZIONE GRAFICO +++++++++++++++++++");
		Grafo grafo = new Grafo();
		grafo.creaGrafo(nomeFile, datiGrafo, maxConnection, tempoMax);
    	System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");

    	System.out.println("++++++++++++ Rimozione dei frammenti inviati ++++++++++++");
    	rimozioneFile(nomeFile, percorsoBase);
    	System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
	}
	
	public void rimozioneFile (String nomeFileCancellare, String percorsoBase) {
		File directory = new File(percorsoBase);
		File[] files = directory.listFiles();
		for (File f : files) {
			String nomeF = f.getName();
			if (nomeF.contains(nomeFileCancellare+".")) {
				System.out.println("Elimina " + nomeF);
				f.delete();
			}
		}
	}
}
